iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
Software Development

小青蛇變大蟒蛇——進階Python學起來!系列 第 12

Python 與浮點數(float):簡化浮點數

  • 分享至 

  • xImage
  •  

浮點數到整數

今天繼續學習浮點數,我們常用的便是把浮點數轉換成點數,這種「轉換」總是會遺失一些資訊,因為小數點後面的位數不見了。

Python 有以下四種浮點數 > 整數的轉換方式:

  • truncation
  • flooring
  • ceiling
  • rounding

Rounding 比較複雜留待明天解釋,今天來學習前面三種轉換吧!

Truncation

from math import trunc
trunc(10.3), trunc(10.5), trunc(10.6)
(10, 10, 10)
trunc(-10.6), trunc(-10.5), trunc(-10.3)
(-10, -10, -10)

從上述例子可以發現,truncation 就是捨棄小數點後面的位數,只留下小數點前面的數值。

把浮點數傳入 int 方法其實也是做 truncation,所以我們可以用 int 做到一樣的效果:

int(10.3), int(10.5), int(10.6)
(10, 10, 10)
int(-10.5), int(-10.5), int(-10.4)
(-10, -10, -10)

Floor

from math import floor
floor(10.4), floor(10.5), floor(10.6)
(10, 10, 10)
floor(-10.4), floor(-10.5), floor(-10.6)
(-11, -11, -11)

floor 是地板的意思,代表把浮點數轉換為小於等於它的整數,這邊可以發現,對正整數來說 flooring 等於 truncation,但負整數結果不同,要特別小心!

Ceiling

from math import ceil
ceil(10.4), ceil(10.5), ceil(10.6)
(11, 11, 11)
ceil(-10.4), ceil(-10.5), ceil(-10.6)
(-10, -10, -10)

ceiling 是天花板的意思,代表將浮點數轉換成大於等於它的整數,如上述範例所示。

好啦,今天就練習到這邊,明天來學習 Round 吧!

參考:Python 3: Deep Dive (Part 1 - Functional)



上一篇
Python 與浮點數(float):比較浮點數
下一篇
Python 與浮點數(float):什麼是 banker rounding?
系列文
小青蛇變大蟒蛇——進階Python學起來!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言